package cn.eleven.util;

import java.sql.*;

/**
 * 数据库工具类，提供数据库连接和资源关闭的方法
 */
public class DBUtil {

    private static final String URL = "jdbc:mysql://localhost:3306/space?useSSL=false&serverTimezone=UTC";
    private static final String USER = "root";
    private static final String PASSWORD = "1234";

    // 静态代码块，加载MySQL驱动
    static {
        try {
            // 加载MySQL的JDBC驱动类
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取数据库连接
     *
     * @return 数据库连接对象
     * @throws SQLException 如果连接数据库时发生错误
     */
    public static Connection getConnection() throws SQLException {
        // 使用DriverManager获取数据库连接
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }

    /**
     * 关闭数据库资源
     *
     * @param conn 数据库连接对象
     * @param stmt SQL语句执行对象
     * @param rs 结果集对象
     */
    public static void close(Connection conn, Statement stmt, ResultSet rs) {
        try {
            // 关闭结果集
            if (rs != null) rs.close();
            // 关闭Statement对象
            if (stmt != null) stmt.close();
            // 关闭数据库连接
            if (conn != null) conn.close();
        } catch (SQLException e) {
            // 关闭资源时出现异常，打印堆栈信息
            e.printStackTrace();
        }
    }
}
